6.2.3 -
L’authentification des utilisateurs via
un annuaire distant :
6.2.3.A - NIS/NIS+ :
Le service NIS/YP ( Network Information Services/Yellow Pages) a
été développé pour fonctionner de concert avec NFS.
Il s’agit d’une base de données répartie qui va
être utilisée par les services de sécurité. Elle
permet principalement à l’ensemble des ordinateurs du domaine de
partager les mêmes fichiers d’administration système, mot de
passe et groupes, ainsi que les mêmes tables de correspondances.
Les
opérations sur le réseau concernant NIS/YP sont servies par deux
processus démons, ypserv et ypbind.
- le démon ypserv prend en compte toutes les requêtes des
machines clientes ;
- le démon ypbind est le processus client, dont la première
tâche va être de trouver les
- serveurs du réseau.
Dans le cadre de NIS, on
considère trois notions importantes : le serveur maître, le serveur
esclave, et le client NIS.
Le serveur maître contient la version
originale de tous les fichiers de la base. C’est également sur ce
serveur que vont fonctionner les deux démons relatifs à NIS/YP (le
serveur est également client de lui-même).
Le serveur esclave ne
contient qu’une mémorisation des fichiers que possède le
serveur maître. Les deux démons sont également actifs sur ce
type de serveur. Les stations clientes accèdent aux données en
envoyant une requête au serveur. Le processus ypbind va permettre la
connexion logique sur le réseau.
Enfin, pour gérer les
notions de groupes (à la façon des groupes Unix), NIS/YP utilise
le fichier « /etc/netgroup » (sous Unix) qui contient la
définition des groupes au sens particulier de NIS/YP.
6.2.3.A.1 - Faiblesse de NIS :
La sécurité procurée par NIS est loin
d’être suffisante. Le serveur NIS/YP contient l’ensemble des
mots de passe partagé, mais tous ces mots de passe sont
chiffrés.
Ainsi, si l’on veut se procurer ces informations
d’un serveur NIS/YP, il suffit de connaître le nom de domaine auquel
il est associé. A partir du moment où un agresseur va être
capable de dialoguer avec le serveur et qu’il aura deviné le nom de
domaine NIS/YP qui a été choisi, il pourra demander
n’importe quelle information au serveur, y compris le fichier de mots de
passe. L’agresseur pourra alors décrypter les mots de passe en
toute quiétude.
Pour aggraver la situation, NIS/YP est basé sur
le protocole RPC (Remote Procedure Call). Or, ce type de services est
particulièrement difficile à gérer par filtrage de paquet,
car les serveurs n’emploient généralement pas de
numéro de ports prévisible, ce qui n’empêche pas pour
autant un agresseur de les trouver.
6.2.3.A.2 - Le service NIS+ :
Il existe un service de type NIS sécurisé, appelé
NIS+, mais celui-ci n’a pas réussi à percer, pour des
raisons de compatibilité, mais surtout parce que la majorité des
sites contournent les déficiences de NIS/YP par leurs propres moyens
(pares-feu). Par ailleurs, il n’améliore la sécurité
que s’il est configuré pour ne pas supporter NIS/YP.
6.2.3.B - Les annuaires basés sur le
protocole LDAP :
Le protocole LDAP est un protocole d'annuaire standard et extensible. Il
fournit :
- le protocole permettant d'accéder à l'information contenue
dans l'annuaire ;
- un modèle d'information définissant le type de données
contenues dans l'annuaire ;
- un modèle de nommage définissant comment l'information est
organisée et référencée ;
- un modèle fonctionnel qui définit comment on accède
à l’information ;
- un modèle de sécurité qui définit comment
données et accès sont protégés ;
- un modèle de duplication qui définit comment la base est
répartie entre serveurs ;
- des APIs pour développer des applications clientes ;
- LDIF, un format d'échange de données.
Le
protocole définit comment s'établit la communication
client-serveur. Il fournit à l'utilisateur des commandes pour se
connecter ou se déconnecter, pour rechercher, comparer, créer,
modifier ou effacer des entrées. Des mécanismes de chiffrement
(SSL ou TLS) et d'authentification (SASL (Simple Authentification and Security
Layer)), couplés à des mécanismes de règles
d'accès (ACL) permettent de protéger les transactions et
l'accès aux données.
La plupart des logiciels serveurs LDAP
proposent également un protocole de communication serveur-serveur
permettant à plusieurs serveurs d'échanger leur contenu et de le
synchroniser (replication service) ou de créer entre eux des liens
permettant ainsi de relier des annuaires les uns aux autres (referral
service).
LDAP propose plusieurs choix d'authentification :
- anonymous authentification - correspond à un accès au serveur
sans authentification, qui permet uniquement de consulter les données
accessibles en lecture pour tous ;
- root DN Authentication - c'est l'utilisateur privilégié. Il a
accès en modification à toutes les données ;
- mot de passe en clair - c'est la méthode classique où le mot
de passe transite en clair sur le réseau ;
- mot de passe + SSL ou TLS - la session entre le serveur et le client est
chiffrée et le mot de passe ne transite plus en clair ;
- certificats + SSL ;
- Simple Authentification and Security Layer (SASL) - permet de faire appel
des mécanismes d'authentification plus élaborés à
base de clés (OTP (One Time Password), Kerberos...).
Le
protocole LDAP fournit également la possibilité de définir
les droits d’accès des utilisateurs sur les ressources de
l’annuaire.
Les logiciels serveurs les plus connus et basés
sur le protocole LDAP sont :
- OpenLDAP server ;
- Innosoft's Distributed Directory Server ;
- Sun Directory Services ;
- Sun Microsystems's Directory Services ;
- IBM's DSSeries LDAP Directory ;
- University of Michigan's SLAPD ;
- LDAP-UX ;
D'autres annuaires supportent les requêtes au
format LDAP :
- Novell's NetWare Directory Services (NDS) 3.0 ;
- Microsoft's Active Directory ;
- Lotus Domino ;
- Ora cle Directory Services.
Un grand nombre de ces
serveurs ont fait (et font) l’objet de découvertes de
vulnérabilités. A titre d’exemple, un rapport du CERT/CC de
décembre 2001 épingle 11 des serveurs LDAP les plus connus pour
différentes vulnérabilités permettant une attaque en
déni de service ou l’obtention d’informations
indues.